home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1990: Discy Business / Discy Business.2mg / DEV.CD / TOOLS / CLIBS / LIBRARIES / CINCLUDE / SOUND.H < prev    next >
Encoding:
C/C++ Source or Header  |  1988-08-01  |  4.9 KB  |  93 lines  |  [B0] Apple IIgs Source Code (0x000A)

  1. /********************************************
  2. ; File: Sound.h
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc. 1986, 1987
  6. ; All Rights Reserved
  7. ;
  8. ********************************************/
  9.  
  10. #ifndef __types__
  11. #include <types.h>
  12. #endif
  13.  
  14. #ifndef __sound__
  15. #define __sound__
  16.  
  17. #define  noDOCFndErr 0x0810   /*error - no DOC chip found */
  18. #define  docAddrRngErr  0x0811   /*error - DOC address range error */
  19. #define  noSAppInitErr  0x0812   /*error - no SAppInit call made */
  20. #define  invalGenNumErr 0x0813   /*error - invalid generator number */
  21. #define  synthModeErr   0x0814   /*error - synthesizer mode error */
  22. #define  genBusyErr  0x0815   /*error - generator busy error */
  23. #define  mstrIRQNotAssgnErr   0x0817   /*error - master IRQ not assigned */
  24. #define  sndAlreadyStrtErr 0x0818   /*error - sound tools already started */
  25. #define  unclaimedSndIntErr   0x08FF   /*error - unclaimed sound interrupt */
  26.  
  27. #define  ffSynthMode 0x0001   /*channelGenMode - Free form synthesizer mode */
  28. #define  noteSynthMode  0x0002   /*channelGenMode - Note synthesizer mode. */
  29.  
  30. #define  gen0off  0x0001   /*genMask - param to FFStopSound */
  31. #define  gen1off  0x0002   /*genMask - param to FFStopSound */
  32. #define  gen2off  0x0004   /*genMask - param to FFStopSound */
  33. #define  gen3off  0x0008   /*genMask - param to FFStopSound */
  34. #define  gen4off  0x0010   /*genMask - param to FFStopSound */
  35. #define  gen5off  0x0020   /*genMask - param to FFStopSound */
  36. #define  gen6off  0x0040   /*genMask - param to FFStopSound */
  37. #define  gen7off  0x0080   /*genMask - param to FFStopSound */
  38. #define  gen8off  0x0100   /*genMask - param to FFStopSound */
  39. #define  gen9off  0x0200   /*genMask - param to FFStopSound */
  40. #define  gen10off 0x0400   /*genMask - param to FFStopSound */
  41. #define  gen11off 0x0800   /*genMask - param to FFStopSound */
  42. #define  gen12off 0x1000   /*genMask - param to FFStopSound */
  43. #define  gen13off 0x2000   /*genMask - param to FFStopSound */
  44. #define  gen14off 0x4000   /*genMask - param to FFStopSound */
  45.  
  46. #define  genAvail 0x0000   /*genStatus - Generator available status */
  47. #define  ffSynth  0x0100   /*genStatus - Free Form Synthesizer status */
  48. #define  noteSynth   0x0200   /*genStatus - Note Synthesizer status */
  49. #define  lastBlock   0x8000   /*genStatus - Last block of wave */
  50.  
  51. #define  readRegister   0x00  /*Jump Table Offset - Read Register routine */
  52. #define  writeRegister  0x04  /*Jump Table Offset - Write Register routine */
  53. #define  readRam  0x08  /*Jump Table Offset - Read Ram routine */
  54. #define  writeRam 0x0C  /*Jump Table Offset - Write Ram routine */
  55. #define  readNext 0x10  /*Jump Table Offset - Read Next routine */
  56. #define  writeNext   0x14  /*Jump Table Offset - Write Next routine */
  57. #define  oscTable 0x18  /*Jump Table Offset - Pointer to Oscillator table */
  58. #define  genTable 0x1C  /*Jump Table Offset - Pointer to generator table */
  59. #define  gcbAddrTable   0x20  /*Jump Table Offset - Pointer to GCB address table */
  60. #define  disableInc  0x24  /*Jump Table Offset - Disable Increment routine */
  61.  
  62. typedef struct SoundParamBlock  {
  63.    Pointer     waveStart;    /* starting address of wave*/
  64.    Word     waveSize;        /*  waveform size in pages*/
  65.    Word     freqOffset;     
  66.    Word     docBuffer;       /*  DOC buffer start address, low byte = 0*/
  67.    Word     bufferSize;      /*  DOC buffer start address, low byte = 0*/
  68.    struct SoundParamBlock *nextWavePtr; /* Pointer to next wave's parameter block*/
  69.    Word     volSetting;      /*  DOC volume setting. High byte = 0*/
  70.    } SoundParamBlock,  *SoundPBPtr,  **SoundPBHndl ;
  71.  
  72. extern pascal void  SoundBootInit() inline(0x0108,dispatcher);   /* Sound */
  73. extern pascal void  SoundStartUp() inline(0x0208,dispatcher);   /* Sound */
  74. extern pascal void  SoundShutDown() inline(0x0308,dispatcher);   /* Sound */
  75. extern pascal Word  SoundVersion() inline(0x0408,dispatcher);   /* Sound */
  76. extern pascal void  SoundReset() inline(0x0508,dispatcher);   /* Sound */
  77. extern pascal Boolean  SoundToolStatus() inline(0x0608,dispatcher);   /* Sound */
  78.  
  79. extern pascal Word  FFGeneratorStatus() inline(0x1108,dispatcher);   /* Sound */
  80. extern pascal Boolean  FFSoundDoneStatus() inline(0x1408,dispatcher);   /* Sound */
  81. extern pascal Word  FFSoundStatus() inline(0x1008,dispatcher);   /* Sound */
  82. extern pascal void  FFStartSound() inline(0x0E08,dispatcher);   /* Sound */
  83. extern pascal void  FFStopSound() inline(0x0F08,dispatcher);   /* Sound */
  84. extern pascal Word  GetSoundVolume() inline(0x0C08,dispatcher);   /* Sound */
  85. extern pascal Pointer  GetTableAddress() inline(0x0B08,dispatcher);   /* Sound */
  86. extern pascal void  ReadRamBlock() inline(0x0A08,dispatcher);   /* Sound */
  87. extern pascal void  SetSoundMIRQV() inline(0x1208,dispatcher);   /* Sound */
  88. extern pascal void  SetSoundVolume() inline(0x0D08,dispatcher);   /* Sound */
  89. extern pascal Pointer  SetUserSoundIRQV() inline(0x1308,dispatcher);   /* Sound */
  90. extern pascal void  WriteRamBlock() inline(0x0908,dispatcher);   /* Sound */
  91.  
  92. #endif
  93.